#include<stdio.h>
#define MaxSize 100
typedef int DataType;
//自定义顺序表
typedef struct
{
	DataType list[MaxSize];
	int size;
}
SeqList;
//初始化顺序表
void ListInitiate(SeqList *L)
{
	L->size=0;
}
int ListLength(SeqList L)
{
	return L.size;
}
//在第i个位置插入数据
int ListInsert(SeqList *L,int i,DataType x)
{
	int j;
	if(L->size>=MaxSize)
	{printf("顺序表已满");
	return 0;
	}
	else if(i<0||i>L->size)
	{
		printf("参数i错误");
		return 0;
	}
	else
	{
		//youcuo
		for(j=L->size;j>i;j--)
	    L->list[j]=L->list[j-1];
		L->list[i]=x;
		L->size++;
		return 1;
	}
}

//提交
//删除数据
int ListDelete(SeqList *L,int i,DataType *x)
{
	int j;
    if(L->size <= 0)
	{
		printf("顺序表中无数据元素！\n");
        return 0;
	}
    else if(i < 0|| i > L->size-1)
	{
		printf("参数i错误");
		return 0;
	}
	else
	{
	*x =L->list[i];
	for(j = i;j<=L->size-1;j++) 
	L->list[j]=L->list[j+1];
	L->size--;
	return 1;
	}
}
int ListGet(SeqList L, int i, DataType *x)

	{
	if(i <0 || i> L.size-1)
	{
	printf("参数i错误\n");
	return 0;
	}
	else
		{
		*x= L.list[i];
		return 1;
		}
		}
			
				
int ListSearch(SeqList L,DataType x){
	

 	for(int i=0;i<L.size;i++)
 	{
	 	if(L.list[i]==x)
	 	{
	 		printf("数据元素%d的索引为：%d\n",x,i);
	 		break;
	 	}
	 	else
	 	{
	 		if(i==(L.size-1))
	 		printf("数据元素%d不存在\n",x);
	 	}
	 
	 }
	
}
			
		
			
int main(int argc,char *argv[])
			{
			SeqList myList;
			int i,x;
			ListInitiate(&myList);
			for(i=0;i<10;i++)
			ListInsert(&myList,i,i+1);
				for(i=0;i<ListLength(myList);i++)
				{
				ListGet(myList,i,&x);
				printf("%d",x);
				}
			printf("\n");
			ListDelete(&myList,4,&x);
				for(i=0;i<ListLength(myList);i++)
				{
				ListGet(myList,i,&x);
				printf("%d",x);
				}
					printf("\n");
			
				ListSearch(myList,11);
				ListSearch(myList,7);
				return 0;
			}
		